//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995-1999  Microsoft Corporation

Module Name:

monitor.h

Abstract:


Notes:


--*/

#pragma once


//
// Forward declarations
//
class CCheckPoint;


//
//
//
class CMonitor
{
public:
            CMonitor();
            ~CMonitor();

    BOOL    Init(const HANDLE hCancelEvent, const DWORD dwCmdThreadID, const DWORD dwReadThreadID);

private:
    HANDLE              m_hCancelEvent;
    HANDLE              m_hCriticalErrorEvent;
    CCheckPoint*        m_pCheckPoint;
    HANDLE              m_hMonitorThread;

friend DWORD WINAPI MonitorThreadProc(LPVOID lpParameter);
};

